1. Field of the Invention
The present invention relates to the field of graphical user interface ("GUI") design for digital computers and, more particularly, involves a technique for defining and invoking user-customized sequences of commands based on the "tool shelf" GUI paradigm where the user places commands (icons) on a sequence tool shelf and designates an order of execution, and once entered and ordered the sequence automatically controls the execution order of the commands without requiring the user to select ("click-on") the commands.
2. Description of the Related Art
The "tool shelf" is a GUI technique known in the prior art that provides an on-screen pallet to which users may assign display icons corresponding to executable programs or commands. In creating the tool shelf the user "drags" desktop icons for the desired commands from one or more "tool boxes" to the tool shelf pallet and drops them on the pallet. As the user does this the conventional systems create a list of commands that are on the tool shelf. Once the user has dropped all the command icons on the tool shelf pallet that are desired the user can give the tool shelf a name. The typical systems allow the creation of multiple tool shelves that group commands according to a users desires and needs. These tool shelves can then be selected by "clicking-on" the "tab" (name) associated with the desired tool shelf. The selected tool shelf will be displayed in a visible tool shelf window and a user can then execute a command in the tool shelf simply by "clicking-on" the corresponding tool shelf icon (that is, by placing or positioning a pointer or cursor on the command icon and then depressing a selection button on a mouse or other pointing device). In this way, the user is given fast, convenient, one-button access to a custom set of particular programs, commands, or tools of interest to that user. For example, the typical GUI display 10, such as is provided with the STUDIO V7 software package available from Alias/Wavefront of Toronto, Ontario, Canada and shown schematically in FIG. 1, allows a user to "drag and drop" command desktop icons from a predefined "tool box" 12 onto a custom tool shelf 14. The commands can, of course, be removed from the shelf 14 by the same drag and drop operations. The tool box 12 is included in a tool pallet 16 of command icons, and is essentially a predefined library of tools, and is not interactively customizable by a user, whereas the tool shelf's contents are fully customizable by the user. The tool pallet 16 shown depicts five tool boxes each signified by a "tab", such as the tab 24 for the "objects" tool box.
Naturally, users generally populate the tool shelf with the most frequently used commands, or with a subset of commands generally used in a particular application of interest. These commands are then invoked by clicking on the desired command (icon). Some systems allow users to construct several different tool shelves, and to control which tool shelf is displayed at a particular moment by clicking on the "tab" or the like associated with each individual tool shelf. The tab generally displays a user specified name that is a description of the associated commands such as the tab 26 for an "Animation" tool shelf. The tool shelf pallet 18 shown in FIG. 1 is depicted with three tool shelves.
The prior art tool shelf interface approach is a reasonably effective GUI technique for some purposes, but remains limited. Current tool shelf designs do not permit users to define an ordering for the execution of a sequence of commands; indeed, they do not represent execution sequences at any meaningful level. This limitation may perhaps be acceptable in the context of a tool shelf containing icons representing disparate programs that are not primarily meant to be used together. However, a tool shelf may contain icons for a set of tools that are used together in an application, such as icons representing the various paintbrushes, colors, and geometric outlines available for use in a drawing or painting program. In this latter case, the ability to represent and define ordered sequences of execution can be very important. The problem of not being able to represent sequences of commands within the tool shelf paradigm is especially pronounced when certain sequences of commands are frequently repeated in a manner that is interleaved with interactive work by the user (e.g., "work flows"). For example, consider a work flow scenario in which the user of a geometric drawing program creates a sphere, moves the sphere, scales the sphere, rotates the view into a particular perspective view, returns the display to a normal work perspective, and then repeats the process. The icons for these operations are illustrated in different tool boxes in the tool pallet 16 of FIG. 1. Assuming that a user has created a customized tool shelf with all of these commands on it, the user must: (i) select (click-on) the "create sphere" tool icon on the tool shelf 14; (ii) move the screen cursor or pointer 20 to a location in the work area 22 of the screen 10 and click-on that location to specify initial placement of the new sphere; (iii) then go back to the tool shelf 14 and select the "move" tool icon; (iv) then once again "drag" or manipulate the cursor 20 within the work area 22 to move the sphere; (v) then once again return to the tool shelf 14 and select the "scale" tool; (vi) then once again drag the pointer 20 in the work area 22 to scale the sphere; (vii) then go back to the tool shelf 14 and select the "change to perspective view" command to evaluate the newly created sphere, and (viii) finally select "return to the normal view" command from the tool shelf 14 before repeating the entire process over again. Thus, even if an appropriate tool shelf is employed, in accordance with the prior art, the user must repeatedly move the cursor 20 (and more importantly, his or her attention) back and forth between the drawing area 22 and the tool shelf 14, and must mentally keep track of progress within the overall command sequence.
Moreover, because the tool shelf selections that make up the command sequence are, in the preceding example and in many real-life situations, necessarily interleaved with work area activity that varies each time the sequence is invoked (e.g., dragging or manipulating the cursor within the work area to select specific locations or scaling for the sphere), this problem is clearly not solved simply by combining prior art tool shelves with prior art macro recording tools.
What is needed is an improved GUI that preserves the intuitiveness and simplicity of the tool shelf paradigm, but that further allows users to define and automate common/custom execution sequences and that keeps the user apprised of the position of execution within the defined sequence.